//
//  NSData+Extension.swift
//  Weibo(Swift)
//
//  Created by 肖霆 on 16/5/17.
//  Copyright © 2016年 肖霆. All rights reserved.
//

import UIKit

extension NSDate{
    //根据一个时间字符串创建时间对象
    class func sinceData(createAt:String)->NSDate {
        let dateFormatter = NSDateFormatter()
        //指定本地化时间
        dateFormatter.locale = NSLocale(localeIdentifier: "en_US")
        //格式化时间（z代表时区）
        dateFormatter.dateFormat = "EEE MMM dd HH:mm:ss z yyyy"
        
        let createAtDate = dateFormatter.dateFromString(createAt)!
        return createAtDate
    }
    

    
    //今年
        //今天
            //一分钟内
            //一小时之内
            //其它
        //昨天
    
    
        //其它
    
    //不是今年
    var sinaDateString:String?  {
        let dateFormatter = NSDateFormatter()
        dateFormatter.locale = NSLocale(localeIdentifier: "en_US")
        if isThisYear(self) {
            //是今年
                //今天
            let currentCalendar = NSCalendar.currentCalendar()//获取当前的日期
            let timeInterval = abs(self.timeIntervalSinceNow)//与现在时间间隔的秒数去绝对值
            if currentCalendar.isDateInToday(self) {
                //一分钟之内
                if timeInterval < 60{
                return "刚刚"
                }else if(timeInterval < 3600){
                    //一小时内
                    let num:Int = Int(timeInterval/60)
                    return "\(num)分钟前"
                }else{
                    //其它
                    let num = Int(timeInterval/3600)
                    return "\(num)小时前"
                }
                
            }else if currentCalendar.isDateInYesterday(self){
                dateFormatter.dateFormat = "昨天 HH:mm"
            }else{
                dateFormatter.dateFormat = "MM-dd"
            
            }
        }else{
            //不是今年
            dateFormatter.dateFormat = "yyyy-MM-dd"
        }
        //将传来的时间通过固定格式进行处理后返回
        return dateFormatter.stringFromDate(self)
    }
    
    
    
    
    //判断是否是今年的方法
    private func isThisYear(createAtDate:NSDate)->Bool{
        
        //获取到当前时间
        let currentDate:NSDate = NSDate()
        
        //将时间格式化为年份
        let dateFormatter = NSDateFormatter()
        dateFormatter.dateFormat = "yyyy"
            //设置时间的本地化
        dateFormatter.locale = NSLocale(localeIdentifier: "en_US")
        //获取发微博时间的年份
        let createAtDateYear = dateFormatter.stringFromDate(createAtDate)
        //获取当前时间的年份
        let currentDateYear = dateFormatter.stringFromDate(currentDate)
        
        //把年份是否相等的结果返回去
        return createAtDateYear == currentDateYear
    }
}